ヘッダーをスキップ
Oracle TimesTen In-Memory Database C開発者およびリファレンス・ガイド
リリース7.0
E05164-02
  目次へ
目次
索引へ
索引

前へ
前へ
次へ
次へ
 

ttXlaError

説明

特定のhandleに対して以前コールした際に発生したエラーの詳細をレポートします。ttXlaErrorへの後続のコールで、複数のエラーが返される場合があります。エラー・スタックは、ttXlaError自体およびttXlaErrorRestart以外の関数をコールするたびに消去されます。

この関数の使用方法については、「XLAエラーの処理」を参照してください。

構文

SQLRETURN ttXlaError(ttXlaHandle_h handle,

          out SQLINTEGER *errCode,

          out char *errMessage,

          SQLINTEGER maxLen,

          out SQLINTEGER *retLen)

パラメータ

パラメータ
説明
handle
ttXlaHandle_h
データ・ストアのトランザクション・ログ・ハンドル。
errCode
out
SQLINTEGER *
errMessage バッファにコピーされるエラー・メッセージのコード。
errMessage
out char *
エラー・テキストが保持されるバッファ。
maxLen
SQLINTEGER
errMessage errMessageバッファの最大長。
retLen
out
SQLINTEGER *
エラー・メッセージの実際のサイズ。

結果

エラー情報が返される場合はSQL_SUCCESSを返し、エラー・スタックにそれ以上エラーがない場合はSQL_NO_DATA_FOUNDを返します。errMessageバッファの大きさが十分でない場合、ttXlaErrorはSQL_SUCCESS_WITH_INFOを返します。

エラー・スタックに複数のエラーが存在する可能性があります。この例では、それらをすべて読み取る方法を示します。

char message[100];

SQLINTEGER code;

for (;;) {

    rc = ttXlaError(xlahandle, &code, message, sizeof (message),         &retLen);

    if (rc == SQL_NO_DATA_FOUND)

        break;

    if (rc == SQL_ERROR) {

        printf("Error in fetching error message\n");

        break;

    }

    else {

        printf("Error code %d: %s\n", code, message);

    }

}

注意

複数のスレッドを使用して単一のXLA接続のTimesTenトランザクション・ログにアクセスすると、同時アクセスを制御するためのラッチが作成されます。なんらかの理由でスレッドでラッチを取得できない場合、XLA関数はSQL_INVALID_HANDLEを返します。

参照

ttXlaErrorRestart